Magento 2 Direct SQL Queries in Zend Format

Magento 2 Direct SQL Queries in Zend Format

Sometimes due to some project requirements, we need to directly communicate with Magento2 Database and we have to write SQL queries for that. This post will help you to write direct SQL Queries in Zend Format.

 

public function __construct(
   \Magento\Framework\App\ResourceConnection $resourceConnection
) {
    $this->resourceConnection = $resourceConnection;
}

$connection = $this->resourceConnection->getConnection();
$tableName = $this->resourceConnection->getTableName('customer_history');
$tableName2 = $this->resourceConnection->getTableName('order_history');

OR

Using Object Manager Directly:

$objectManager =  \Magento\Framework\App\ObjectManager::getInstance();
$resource =  $objectManager->get('Magento\Framework\App\ResourceConnection');

$connection = $resource->getConnection();

$tableName =$resource->getTableName('customer_history');

$tableName2 =$resource->getTableName('order_history');

 

Select Queries:

Syntax: 

$select = $connection->select()
 ->from(
 ['p' => $tableName])
  ->where('p.column_name=?', $value)
  ->where('p.column_name2 >=?', $value)
  ->order('p.column_name3 DESC')
  ->limit($pagesize, $offset);

$data = $connection->fetchAll($select);

Example:

$select = $connection->select()
         ->from(
        ['p' => $tableName])
        ->where('p.customer_id=?', 5)
        ->where('p.status =?', 1)
        ->order('p.createdat DESC')
        ->limit(10, 0);

To get only selected columns from Table:

$select = $connection->select()
 ->from( ['p' => $tableName],['p.order_id', 'p.status']) 
->where('p.customer_id=?', 5) 
->where('p.status =?', 1)
 ->order('p.createdat DESC') 
->limit(10, 0);

 $data = $connection->fetchAll($select);

Perform Select Query with JOIN

 

$select  = $connection->select()
           ->from(
                  ['p' => $tableName], ['p.customer_id', 'p.status', 'p.order_id','o.ordertotal']
                 )
                 ->join(
                        ['o' => $tableName2], 'main_table.order_id = order.id', ['']
                )
                ->where('p.order_id = (?)', '455');

$data = $connection->fetchAll($query);

 

Insert Query:

Syntax: 

$data = ["column_name"=>$value,"column_name2"=>$value2,'column_name3'=>$value3];

$connection->insert($tableName, $data);

Example : 

$data = ["customer_id"=>'22',"status"=>1,'order_id'=>'455'];

$lastInsertedID= $connection->insert($tableName, $data);

 

Update Query:

Syntax:

$data = ["column_name3"=>$value3];

$where = ['column_name = ?' => $value, 'column_name2 = ?' => $value2];

$updatedRows=$connection->update($tableName, $data, $where);

Example:

$data = ["status"=>1];

$where = ['customer_id = ?' => '22', 'order_id = ?' => '455'];

$updatedRows=$connection->update($tableName, $data, $where);

 

Delete Queries

Syntax: 

$connection->delete(
            $tableName,
            ['column_name = ?' => $value, 'column_name2 = ?' => '0']
        );

Example :

$connection->delete(
            $tableName,
            ['customer_id = ?' => '22', 'status = ?' => '0']
        );

 

1   0
Eecrets Magento
profile Nimra 22nd June 2025

Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. skor live

Write a comment ...
Post comment
Cancel
profile Nimra 22nd June 2025

Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. casino online

Write a comment ...
Post comment
Cancel
profile Nimra 22nd June 2025

Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon. Big thanks for the useful info. Web3 Dapp

Write a comment ...
Post comment
Cancel
profile Nimra 17th June 2025

Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. قالب تزریق پلاستیک

Write a comment ...
Post comment
Cancel
profile Nimra 17th June 2025

Thank you because you have been willing to share information with us. we will always appreciate all you have done here because I know you are very concerned with our. togel macau

Write a comment ...
Post comment
Cancel
profile Nimra 17th June 2025

Really I enjoy your site with effective and useful information. It is included very nice post with a lot of our resources.thanks for share. i enjoy this post. olxtoto alternatif

Write a comment ...
Post comment
Cancel
profile Nimra 17th June 2025

Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. iosbet

Write a comment ...
Post comment
Cancel
profile Nimra 17th June 2025

Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. iosbet

Write a comment ...
Post comment
Cancel
profile Nimra 17th June 2025

Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. iosbet

Write a comment ...
Post comment
Cancel
profile Nimra 17th June 2025

Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. iosbet

Write a comment ...
Post comment
Cancel
profile Nimra 17th June 2025

Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. iosbet

Write a comment ...
Post comment
Cancel
profile Nimra 16th June 2025

Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. Dewatogel

Write a comment ...
Post comment
Cancel
profile Nimra 16th June 2025

Thank you because you have been willing to share information with us. we will always appreciate all you have done here because I know you are very concerned with our. Olabahis

Write a comment ...
Post comment
Cancel
profile NoreenRogers12 16th June 2025

Thank you because you have been willing to share information with us. we will always appreciate all you have done here because I know you are very concerned with our. dtf printer

Write a comment ...
Post comment
Cancel
profile Nimra 16th June 2025

Thank you because you have been willing to share information with us. we will always appreciate all you have done here because I know you are very concerned with our. iosbet daftar

Write a comment ...
Post comment
Cancel

Related Post

11th June 2020

Upgrade Magento to ver 2.3.5-p1 without composer

Magento released 2.3.5-p1 that includes 180 functional fixes, 25 security enhancements, support for Elasticsearch 7.x and migration of the Zend to Laminas....

read more reply

Please rotate your device

We don't support landscape mode on your device. Please rotate to portrait mode for the best view of our site